[英]numbers after comma in Java
如何在 Java 中的逗号后得到n
数字?
...
double numb = 123.45;
void lastNumber(int n){
// here
}
...
(在这个例子中 n = 2,所以逗号后面有两个数字)
或利用
有点丑:
public long getFraction(double num, int digits) {
int multiplier = POWERS_OF_TEN[digits];
long result = ((long) (num * multiplier)) - (((long) num) * multiplier);
return result;
}
其中POWERS_OF_TEN
是预先计算的 10 次方数组(0=1、1=10、2=100、3=1000 等)
double numb = 123.45 实际上不是 123.45,但在二进制表示中非常接近它。
如果您需要正好 123.45,则需要BigDecimal class,例如
BigInteger numb = new BigInteger("123.45"); // or
BigInteger numb = BigInteger.valueOf(12345, 2);
一个简短的工作程序产生 45:
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal numb = BigDecimal.valueOf(12345,2);
BigDecimal remainder = numb.remainder(BigDecimal.ONE);
System.out.println(remainder.unscaledValue());
}
}
使用 BigIntegers 并不好玩,但在处理财务时非常好。 它们并不快,但如果你只有一个数字,那应该不是问题:)
这个比较简单。 与其只给出答案,不如考虑一下。 忘记 Java - 从数学的角度想想你想做什么。 从问题中,您需要小数点后的数字 - 数字的小数部分 - 0.45
。 你怎么能从 123.45 得到 0.45?
想想你需要减去什么,你如何得到这个数字? 有一个数学 function,“地板”,它给你一个没有小数部分的数字。 (至少对于正数。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.