我知道这是一个简单的问题,但我想得到这样的结果。
3/6 = 0.500000
将两个数字相除并在单个变量中返回商和提醒,我如何快速实现上述目标?
我在我的项目中使用c ++.然而,当我尝试进行简单的划分时,它给了我一个奇怪的数字.
对于:
1.0 / 2.0 = -107374176.
1.0 / 3.0 = -107374176.
1 / 3 = -107374176.
Run Code Online (Sandbox Code Playgroud)
知道为什么会这样吗?
我试图划分的第一排与第二,第三排,第四,第五行与第六及以后的一个相当大的数据表.没有太多计算,有没有办法做到这一点.
输入
Name Month Income
John Jan 10000
John_County Jan 20000
Tanya Jan 20000
Tanya_County Jan 40000
Run Code Online (Sandbox Code Playgroud)
产量
Name Month Per_Income
John Jan 50%
Tanya Jan 50%
Run Code Online (Sandbox Code Playgroud) 我跑的时候
printf("%.8f\n", 971090899.9008999);
printf("%.8f\n", 9710908999008999.0 / 10000000.0);
Run Code Online (Sandbox Code Playgroud)
我明白了
971090899.90089989
971090899.90089977
Run Code Online (Sandbox Code Playgroud)
我知道为什么两者都不准确,但我不明白为什么第二个与第一个匹配?
我认为基本的算术运算(+ - */)总是尽可能准确...
第一个数字不是第二个数字比第二个更精确的结果吗?
// In golang
x, y := big.NewFloat(26959535291011309493156476344723991336010898738574164086137773096960), big.NewFloat(14484.162361)
z := new(big.Float).Quo(x, y)
fmt.Println(fmt.Sprintf("%f", z))
Run Code Online (Sandbox Code Playgroud)
输出:1861311315012765262390495455137379355146730679910059382988079104.000000
// In python
v1 = 26959535291011309493156476344723991336010898738574164086137773096960000000
v2= 14484162361
print v1/v2
Run Code Online (Sandbox Code Playgroud)
输出:1861311315012765306929610463010191006516769515973403833769533170
这是我的结果:
2 x 3 x 5 x 7 x 11 x 13 x 17 x 19 x 23 x 29 x 31 x 37 x 41 x 43 x 47 x 53 x 59 x 61 = 3,982,538,761,641,808,742
divisable 2:true
divisable 3:false
divisable 5:false
divisable 7:false
divisable 11:true
这是我的代码:
public static void main(String[] args) {
final ArrayList<Long> prime = prime();
System.out.println("size : " + prime.size());
long i = 1;
for (Long l : prime) {
System.out.print(" x "+l);
i *= …Run Code Online (Sandbox Code Playgroud)