1樓:春天的離開
c#中int向float型轉換:
1、用convert方法。convert.toint32(string),括號裡的是需要轉換的字串。
2、int32.parse(string)和int.parse(string)。
3、int32.tryparse(string,out int result)或int.tryparse(string,out int result)來轉換。
tryparse的返回值是一個bool型別的值,指示是否轉換成功,轉換成功後第二個引數就是已經轉換成功的值:
int result;
if(int32.tryparse("20", out result))
else
擴充套件資料
當在int(假設int是32位的)、float和double格式之間進行強制型別轉換時,原則如下:
從 int 轉換成 float,數字不會溢位,但是可能被舍入。
從 int、float 轉換成 double,能夠保留精確的數值。因為 double 有更大的範圍和更高的精度(有效位數)。
從 double 轉換成 float,因為 float 範圍要小一些,所以值可能溢位成 +∞ 或 -∞。另外由於float精度較小,還可能被舍入。
從 float、double 轉換成 int,值將會向零舍入。如1.999會被轉成1,-1.999會被轉成-1。同時值可能會溢位。
2樓:匿名使用者
float的精度是指有效數字的位數,不一定是指小數點後位數。float型資料也是用32位儲存,由於有階碼,所以損失了部分精度。
3樓:三根鞋帶
float的儲存位是32位元,定義其為7位有效數字,這裡的7位有效數字是說精度,不是說範圍.
你可以使用double或decimal
其中double也使用double.tostring("0.000");來控制精度
4樓:匿名使用者
樓主觀察很細微啊。int到float轉換精度會降低,如果需要較高精度,應該考慮使用double型別。如下分析:
第一點:從int(system.int32)到float轉換精度會降低。如下**:
static void main(string args)
輸出為:
2147483647
2.147484e+09
明顯有效位數減少。
第二點:msdn中有如下描述:
可在一個表示式中兼用數值整型和浮點型。在此情況下,整型將轉換為浮點型。根據以下規則計算表示式:
如果其中一個浮點型為 double,則表示式的計算結果為 double 型別,在關係表示式或布林表示式中為 bool 型別。
如果表示式中不存在 double 型別,則表示式的計算結果為 float 型別,在關係表示式或布林表示式中為 bool 型別。
這樣,如果表示式中只有int和float,可能得不到應有的精度,因此應該考慮將float轉成double之後再進行運算。
共同**~~
請教高手c# 中double 向 float 型別怎麼轉換啊??
5樓:大野瘦子
有兩種:
1、隱式轉換是直接轉換 。例如:
int i = 34;
long j = i;
2、顯式轉換包含有強制型別轉換。 例如:
double j=3.14;
j=(float)j;
6樓:匿名使用者
c# 支援兩種型別的轉換,隱式轉換和顯式轉換。
⑴隱式轉換是直接轉換 。例如:
int i = 34;
long j = i;
⑵顯式轉換包含有強制型別轉換。 例如:
double j=3.14;
j=(float)j;
7樓:匿名使用者
float testfloat=0;
if(float.tryparse(doublevalue,out testfloat))
else
8樓:青花惡魔
convert.tosingle()
9樓:匿名使用者
1.convert.tofloat()
2.float.parsh()
10樓:匿名使用者
convert.tofloat()
c#浮點型顯示轉換為整型時為什麼是捨去小數部分?
11樓:
c#浮點型顯示轉換為整型是取整整的,會強制轉換捨去小數部分。
這個賦值會把堆疊中的運算結果值存入變數,在這個過程中,實際的值應該是x=70074.996948242188,而因為精度問題,存入c的值是c=70075.0。
例:擴充套件資料使用注意事項
單精度浮點數只有7位(十進位制)左右的精度,如果將其乘以1000,那麼誤差也就擴大1000倍。然後又把float直接截斷為int32數字。有這樣粗放的演算法,那麼這種精度損失,是很正常的,最終在int32的值上只看到4為有效數字了)。
.net在不同系統版本下、不同cpu下,編譯出來的**是不同的。而不同cpu對於指令的處理肯定也是不完全相同的。
即使是.net2.0framework,用11、12年前的與2023年是隨現在的軟體包而釋出的.
net2.0,相信它的jit編譯出的**也是有差異的。相信最近這些年的.
net在保證運算效率的基礎上,也能稍微提高一些精度。
12樓:匿名使用者
那要看你如何轉換了
如果使用(int)
比如:double b = 12.6; int a = (int)b; // 此時a的值為12
如果使用convert
比如:double b = 12.6; int a = convert.toint32(b); //此時a的值為13
根據需求靈活運用需要的轉換型別提升精度
13樓:
所謂整形那肯定就是整形啦 是會直接去掉的, 要保留小數點之前的 而且四捨五入的話 你手動做吧 四捨五入
14樓:匿名使用者
c#中的轉換整形是去整的啊,不是四捨五入的
請問C的float如何轉換為int
四舍 入 int到float轉換精度會降低,如果需要較高精度,應該考慮使用double型別。如從int system.int32 到float轉換精度會降低,如下 static void main string args int32 number int32.maxvalue console.wri...
在C中如何將INT型資料強制轉換為STRING型
int 是數,string 是字串,不能轉換的你需要的是將數值以字串方式表達 應該這樣 int a 3 string str a.tostring orint a 3 string str convert.tostring a 我是不是多此一舉啊?呵呵 奚雪瑤鄢奧 int.parse 方法或者 in...
在C語言中float與int有什麼不同
float是浮點型,int是整型,float max是定義一個浮點型的變數,名字叫做max 井鈺 其實,你要知道區別的話,很簡單的 相同點 他倆都是基本資料型別.都可以定義該型別的變數不同點 定義變數時,int型別變數和float型別變數所佔用的空間大小不同這個與你的機器有關,看它的字長是多少位的,...