java 按比例分配后得到小数,将小数取整,但不改变总数

java 按比例分配后得到小数,将小数取整,但不改变总数,第1张

别想着这样分呗,你分成3块,第一份取i=1,第二份取j=1,第三份取sum=10,k = sum-(i+j)

然后第二次就取,i=1 ,j=2,sum=10,k = sum-(i+j),懂意思吧

#include <stdioh>

#include <conioh>

#include <windowsh>

float fun ( float h )

{

long num;

h=h+(float)0005;

h=h100;

num=(long)h;

h=(float)num;

h=h/100;

return h;

}

main()

{

float a;

system("cls");

printf("Enter a: ");

scanf("%f",&a);

printf("The original data is: ");

printf("%f \n\n",a);

printf("The result: %52f\n",fun(a));

getch();

}

这两个词的区别我懂, long可以存储更大的正数或负数值,而int只能存储一个最大值和最小值。给大家简单总结了两个词的含义、发音以及用法,先大概的了解一下~~

接下来让我们看下long和int的其他区别:

1 数据类型不同:long和int都是整型数据类型,但long能够存储更大范围的整数值。

例句:

long a = 100000000000L;

int b = 2147483647;

2 内存占用不同:  long占用更大的内存空间,因此对于所有的情况都应选择int 避免浪费内存。

例句:

int a = 10;

long b = 1000L;

3 使用场景不同: long主要用于需要存储大数值时,而int用于大多数数字计算、计数和枚举。

例句:

The capacity of this hard drive is so large that it needs a long data type to store its size

这个硬盘的容量非常大,需要使用long数据类型来存储它的大小。

The number of students in this class is less than 100, so using an int data type is sufficient

这个班上的学生人数少于100人,所以使用int数据类型就足够了。

4 取值范围不同: long可以存储更大的正数或负数值,而int只能存储一个最大值和最小值。

例句:

The distance from the Earth to the Sun is a very large number that requires a long data type to store it

地球到太阳的距离是一个很大的数据,需要使用long数据类型来存储。

The temperature outside is high today, but it is within the range of values that can be stored in an int data type

今天外面很热,但它在可以存储在int数据类型中的值的范围内。

5 精度不同: long相比较于int更精度,因为它可以存储更多的小数位。

例句:

The result of the calculation requires a long data type to store its many decimal places of accuracy

这个计算结果需要使用long数据类型来存储它的精度。

The answer is an integer, so an int data type is sufficient to hold its value

答案是一个整数,因此使用int数据类型就足够了。

首先解释为什么是负值

因为溢出了

111111111111=12345654321

超出了int能表示的范围

可能你要问

不是已经%lld了吗

没错

%lld是用于long

long类型的,但只代表输出的时候按照long

long的类型输出,并不能影响后面参数的实际类型

对于整型常数,c语言默认都是int型

除非有特殊标明

接下来说解决方法

很简单

提供两种解决方法

第一种

强制转换

无所不能的强制转换

只要printf("%lld\n",(long

long

)111111111111);即可

第二个可以不用,因为运算的时候自动会按照高级别类型转换

当然你加上也没关系

第二种方法

后缀

printf("%lld\n",111111ll111111);

在第一个数字结尾加上两个l

即l

等于告诉系统,这个不是int型

而是long

long型

这样就可以按照long

long

来计算输出了

以上就是关于java 按比例分配后得到小数,将小数取整,但不改变总数全部的内容,包括:java 按比例分配后得到小数,将小数取整,但不改变总数、c语言:函数float fun(double h),函数的功能是对变量h中的值保留2位小数,、long和int有什么区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9741759.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存