[英]Java type casting / narrowing of primitive variable
我在表達式的結果中得到指數值,在其中我將long加倍。
package com.testing;
import java.util.Date;
public class TypeCasting {
public static void main(String[] args) {
long varA = 100000;
long varB = 3000000;
double logVarA = Math.log10(varA); // 5.0
double logVarB = Math.log10(varB); // 6.477121254719663
long timeStampInSec = new Date().getTime() / 1000;
System.out.println(timeStampInSec); // 1552543503
double totalValue = logVarA + logVarB + timeStampInSec;
System.out.println(totalValue); // 1.5525435144771214E9
double finalScoreDampingFactor = 1000;
double finalScore = totalValue / finalScoreDampingFactor;
System.out.println(finalScore); // 1552543.5144771214
}
}
在totalValue變量中,為什么我要獲得1.5525435144771214E9值,而當我將其與1000 相乘時 ,就得到1552543.5144771214 。
可以請任何人解釋嗎?
無論數字如何表示,數字都具有相同的值。 您看到的顯示為字符串的內容只是數字的表示。
不論出於何種原因,JVM都決定以指數形式打印數字。 如果要強制以其他方式打印它,可以使用printf 。
double totalValue = logVarA + logVarB + timeStampInSec;
System.out.printf("%f%n", totalValue); // 1552547672.477121
1.5525435144771214E9是1552543514 ....除以1000是1552543 ....
您是否可能誤解了1.5525435144771214E9 ?
EX
含義是“ X的10倍”。
因此原始號碼為1552543514.4771214
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.