本文将分享需要将JSON中的整数解析为整数,而不是浮点数的详细内容,并且还将对需要将json中的整数解析为整数,而不是浮点数吗进行详尽解释,此外,我们还将为大家带来关于5、PHP-将浮点数转为整数ph
本文将分享需要将JSON中的整数解析为整数,而不是浮点数的详细内容,并且还将对需要将json中的整数解析为整数,而不是浮点数吗进行详尽解释,此外,我们还将为大家带来关于5、PHP-将浮点数转为整数 php 浮点数比较 php 浮点数精度 php 浮点数格式、asp 取一个数的整数 但不是四舍五入,只要有小数,就取大于这个数的整数、Excel文件中的整数变成浮点数?、java – Gson.将整数反序列化为整数,而不是双精度的相关知识,希望对你有所帮助。
本文目录一览:- 需要将JSON中的整数解析为整数,而不是浮点数(需要将json中的整数解析为整数,而不是浮点数吗)
- 5、PHP-将浮点数转为整数 php 浮点数比较 php 浮点数精度 php 浮点数格式
- asp 取一个数的整数 但不是四舍五入,只要有小数,就取大于这个数的整数
- Excel文件中的整数变成浮点数?
- java – Gson.将整数反序列化为整数,而不是双精度
需要将JSON中的整数解析为整数,而不是浮点数(需要将json中的整数解析为整数,而不是浮点数吗)
首先让我解释一下这个问题。
我的Golang应用程序中包含了JSON记录流。它基本上将这些转发到数据存储(InfluxDB)。JSON中有一些整数值,还有一些浮点值。必须将它们与原始数据类型一起转发到数据存储。否则,将发生类型冲突,并且写入操作将失败。
Ruby JSON解析器可以轻松做到这一点:
require ''json''obj = { "a" => 123, "b" => 12.3 }parsed = JSON.parse(obj.to_json)print parsed["a"].class # => Integerprint parsed["b"].class # => Float
encoding/json
Golang中的软件包确实有一些麻烦(所有数字都解析为浮点数):
package mainimport "encoding/json"import "fmt"func main () { str := "{\"a\":123,\"b\":12.3}" var parsed map[string]interface{} json.Unmarshal([]byte(str), &parsed) for key, val := range parsed { switch val.(type) { case int: fmt.Println("int type: ", key) case float64: fmt.Println("float type: ", key) default: fmt.Println("unknown type: ", key) } }}
哪些打印:
float type: afloat type: b
我需要一种以Ruby JSON解析器的方式将int解析为int并以float形式浮动的方法。
在这种情况下,将所有内容解析为字符串并检查是否存在小数是不可行的 。某些值以字符串形式出现,例如“ 123”,我需要将它们 作为string 推送。
我没有解析对象的结构,这也不是一个选择。golang应用程序实际上并不关心模式,而只是在接收到输入时转发该输入。
我尝试了这里概述的方法:验证int和float64的reflect.Type的其他方法(使用reflect
),但是它不能准确地标识int:
t := reflect.TypeOf(parsed["a"])k := t.Kind()k == reflect.Int // falsek == reflect.Float64 // true
答案1
小编典典例如,使用通用Go机制获取自定义JSON值的Ruby JSON数字类型,
package mainimport ( "encoding/json" "fmt" "strconv")func main() { str := `{"a":123,"b":12.3,"c":"123","d":"12.3","e":true}` var raw map[string]json.RawMessage err := json.Unmarshal([]byte(str), &raw) if err != nil { panic(err) } parsed := make(map[string]interface{}, len(raw)) for key, val := range raw { s := string(val) i, err := strconv.ParseInt(s, 10, 64) if err == nil { parsed[key] = i continue } f, err := strconv.ParseFloat(s, 64) if err == nil { parsed[key] = f continue } var v interface{} err = json.Unmarshal(val, &v) if err == nil { parsed[key] = v continue } parsed[key] = val } for key, val := range parsed { fmt.Printf("%T: %v %v\n", val, key, val) }}
游乐场:https :
//play.golang.org/p/VmG8IZV4CG_Y
输出:
int64: a 123 float64: b 12.3 string: c 123 string: d 12.3 bool: e true
另一个示例,使用Go json.Number
类型的Ruby JSON数字类型,
package mainimport ( "encoding/json" "fmt" "strings")func main() { str := `{"a":123,"b":12.3,"c":"123","d":"12.3","e":true}` var parsed map[string]interface{} d := json.NewDecoder(strings.NewReader(str)) d.UseNumber() err := d.Decode(&parsed) if err != nil { panic(err) } for key, val := range parsed { n, ok := val.(json.Number) if !ok { continue } if i, err := n.Int64(); err == nil { parsed[key] = i continue } if f, err := n.Float64(); err == nil { parsed[key] = f continue } } for key, val := range parsed { fmt.Printf("%T: %v %v\n", val, key, val) }}
游乐场:https :
//play.golang.org/p/Hk_Wb0EM-aY
输出:
int64: a 123float64: b 12.3string: c 123string: d 12.3bool: e true
@ShudiptaSharma建议的工作版本。
5、PHP-将浮点数转为整数 php 浮点数比较 php 浮点数精度 php 浮点数格式
1、使用强制类型转换
首先PHP支持如下所示的数据类型:
<span>1. </span>Integer (整数) <span>2. </span>Float (浮点数) <span>3. </span>String (字符串) <span>4. </span>Boolean (布尔值) <span>5. </span>Array (数组) <span>6. </span>Object (对象)
此外还有两个特殊的类型:NULL(空)、resource(资源)。
注:
1. 没有被赋值、已经被重置或者被赋值为特殊值NULL的变量就是NULL类型的变量。
2. 特定的内置函数(例如数据库函数)将返回resource类型的变量。
接着可以使用类似C语言的强制类型转换,例如
<span><?php </span><span>$a</span>=<span>6.66666</span>; <span>$b</span>=(integer)<span>$a</span>; <span>echo</span><span>$b</span>;</span>
将输出一个6,直接舍去了小数部分
立即学习“PHP免费学习笔记(深入)”;
2、使用float floor ( float value) 函数
舍去法取整,返回不大于 value 的下一个整数,将 value 的小数部分舍去取整。floor() 返回的类型仍然是 float,因为float 值的范围通常比 integer 要大。
echo <span>floor</span>(<span>4.3</span>); <span>// 输出4 </span> echo <span>floor</span>(<span>9.999</span>); <span>// 输出9</span>
3、使用float ceil ( float value) 函数
进一法取整,返回不小于 value 的下一个整数,value 如果有小数部分则进一位。ceil() 返回的类型仍然是 float,因为float 值的范围通常比 integer 要大。
echo <span>ceil</span>(<span>4.3</span>); <span>// 输出5 </span> echo <span>ceil</span>(<span>9.999</span>); <span>// 输出10</span>
4、使用float round ( float val [, int precision])函数
对浮点数进行四舍五入,返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果。precision 也可以是负数或零(默认值)。
echo <span>round</span>(<span>3.4</span>); <span>// 输出3 </span> echo <span>round</span>(<span>3.5</span>); <span>// 输出4 </span> echo <span>round</span>(<span>3.6</span>); <span>// 输出4 </span> echo <span>round</span>(<span>3.6</span>, <span>0</span>); <span>// 输出4 </span> echo <span>round</span>(<span>1.95583</span>, <span>2</span>); <span>// 输出1.96 </span> echo <span>round</span>(<span>1241757</span>, -<span>3</span>); <span>// 输出1242000 </span> echo <span>round</span>(<span>5.045</span>, <span>2</span>); <span>// 输出5.04 </span> echo <span>round</span>(<span>5.055</span>, <span>2</span>); <span>// 输出5.06</span>
以上就介绍了5、PHP-将浮点数转为整数,包括了php,浮点数方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
asp 取一个数的整数 但不是四舍五入,只要有小数,就取大于这个数的整数
如:0.625 取 1
2.1 取 3
3.6 取 4
<%
if fix(a)>a then
b=fix(a)
else
b=fix(a)+1
response.write b
end if
%>
或者:
<%
a=0.625
if a<>fix(a) then
a=fix(a)+1
else
a=fix(a)
end if
response.write a
%>
(注:这个测试成功!)
-------------
如果用:
<%
a=0.625
if a<>cint(a) then
a=cint(a)+1
response.write a
end if
%>
(注:这个如果a=0.625,返回的就变成2,而不是变成1.)
- JS保留小数点(四舍五入、四舍六入)实现思路及实例
- javascript小数四舍五入多种方法实现
- js数字输入框(包括最大值最小值限制和四舍五入)
- 特殊数据的js四舍五入问题
- PHP保留两位小数并且四舍五入及不四舍五入的方法
- c#中的浮点型转整形的舍取 四舍五入和银行家舍入实现代码
Excel文件中的整数变成浮点数?
我用来xlrd
从Excel文件中读取数据。
假设对于存储在文件中的整数63
,xlrd
解释将其解释为63.0
type number
。
为什么不能xlrd
识别63
为整数?
假设sheet.row(1)[0].value
给了我们63.0
。如何将其转换回63
。
java – Gson.将整数反序列化为整数,而不是双精度
{"id":1,"inner_obj":{"key":"value","num":666,"map":{"key":"value"}}}
反序列化(map.toString()):
{id=1.0,inner_obj={key=value,num=666.0,map={key=value}}}
有没有一些简单的方法来反序列化“id”和“num”作为整数,而不是双打?
解决方法
关于需要将JSON中的整数解析为整数,而不是浮点数和需要将json中的整数解析为整数,而不是浮点数吗的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于5、PHP-将浮点数转为整数 php 浮点数比较 php 浮点数精度 php 浮点数格式、asp 取一个数的整数 但不是四舍五入,只要有小数,就取大于这个数的整数、Excel文件中的整数变成浮点数?、java – Gson.将整数反序列化为整数,而不是双精度等相关内容,可以在本站寻找。
本文标签: