我有四个日期(日期1、日期2、日期3和日期4(。
我有一个脚本,它计算出日期1和日期2之间的天数("日期1calc"(,然后计算出日期3和日期4之间的天数。
我现在想做的是date1calc除以date2calc,得到一个值。我们称之为"dateValue"。虽然我得到了date1calc和date2calc的正确值,但它将dateValue显示为"0"。
这是代码:
var date1calc = singleDate.difference(dateNow).inDays;
var date2calc = singleDate.difference(startSingleDate).inDays;
var dateValue = date1calc ~/ date2calc;
当我打印出这三个值时,它显示:
date1calc = 140
date2calc = 270
dateValue = 0
为什么dateValue显示为"0"而不是"0.5185"?
提前感谢
****更新***
多亏了edbond,它解决了我的问题,控制台正确地将dateValue显示为0.5185xxxxxxxx
不过,这给我留下了另一个问题,即"double"不是"int"类型的子类型
为了解决这个问题——以防其他人无意中找到答案——我找到了另一个将double转换为int的解决方案:
double x = dateValue;
int a = x.toInt();
var dateValue2 = a;
然后在我的其余代码中调用"dateValue2",而不是"dateValue",这就像一个魅力!
我不能说这是最好的方法,但它对我有效。
您使用的是整数除法~/而不是浮点除法/
void main() {
var date1calc = 140;
var date2calc = 270;
print(date1calc / date2calc);
}
打印0.5185185185185185