thermodyna的個人空間

電腦雜談  發布時間:2020-01-29 05:04:12  來源:網絡整理

字符轉十六進制_浮點數轉換_字符串轉浮點數

thermodyna的個人空間工作日志

正文

thermodyna發布于 2018/07/05 15:17

字數 648

字符轉十六進制_浮點數轉換_字符串轉浮點數

閱讀 47

由于輸入是字符串,可直接利用str.index('.')找到小數點位置(若無小數點,返回值為-1, 則可以此為根據寫個if子句跳過小數處理個別。整數的轉化:使用變量從左到右依次讀入兩位數x,y, return:10*x+y小數的轉換:和整數類似,只不過return: (x+y/10)/10故重點在于找到并剔除小數點,以小數點為界將字符串分為兩塊 int and fraction,整數部分寫個小變量處理,小數部分寫另一個小變量處理,最后整體返回時 return: int + fraction即可整數和小數都使用同樣函數處理(即均采取10x+y模式)只不過對小數部分,由于我們即將通過s.index()找到了小數點位置,故直接用這個位置對字符串進行切片存至兩個list中去(Int and Frac)字符串轉浮點數,首先對兩個list都運用map函數使用Int把字符串list轉化為int list,之后對整數的list使用reduce(f,Int)字符串轉浮點數,其中f即為原方法二中的轉換函數(f(x,y) return 10x+y, 對于小數部分,我們實際上可以運用同樣操作,即把它只是是整數處理,然后再把小數點移至最左端。怎樣移到最左端呢?假設小數部分有n位,那么肯定只要除以10**n即可, 這個n往往就是Frac list的長度。則我們有:對小數部分reduce(f,Frac) //變成整數串

# -*- coding: utf-8 -*-
from functools import reduce
def str2float(s):
	def fn(x,y):
		return x*10+y
	boundary=s.index('.')
	Int = list(map(int,[x for x in s[:boundary]]))
	Frac = list(map(int,[x for x in s[boundary+1:]]))
	return reduce(fn,Int) + reduce(fn,Frac)/(10**len(Frac))
print('str2float(\'123.456\') =', str2float('123.456'))
if abs(str2float('123.456') - 123.456) < 0.00001:
    print('測試成功!')
else:
    print('測試失敗!')	

著作權歸作者所有

字符串轉浮點數_浮點數轉換_字符轉十六進制

博文 1

碼字總數 648

作品 0

奧地利

字符轉十六進制_字符串轉浮點數_浮點數轉換

關注私信提問

相關文章最新文章

.Net 避免 float 轉 double 丟失精度的方法

第一部分:float 轉 double 丟失精度 類型 精度 位寬 C# 后綴 可以表示的數值范圍 .Net 類名 float 7 位 32bit F -3.4 × 10^38 ~ +3.4 × 10^38 System.Single double 15~16 位 64bit D ...

字符轉十六進制_浮點數轉換_字符串轉浮點數

在PHP中常碰到的函數處理函數庫(isset()、unset()、empty、is_array...

gettype: 取得變量的類別。 intval: 變量轉成整數類型。 doubleval: 變量轉成倍浮點數類型。 empty: 判斷變量能否已配置。 isarray: 判斷函數類別是否為變量種類。 isdouble: 判斷變量類型是...

雍雍_yoyo

2013/05/06

Go 一些詳細的實用 代碼片段


本文來自電腦雜談,轉載請注明本文網址:
http://www.gefhbj.live/a/jisuanjixue/article-138784-1.html

    相關閱讀
    發表評論  請自覺遵守互聯網相關的政策法規,嚴禁發布、暴力、反動的言論

    • 寇埴
      寇埴

      繼續努力

    • 大浦冬華
      大浦冬華

      要不是中國大陸你們都不知道被美帝國等其他西方國家輪奸多少次了

    熱點圖片
    拼命載入中...
    少林宝藏100在线客服 贵阳按摩会所排行榜 15选5开奖结果 全来湖南麻将有挂吗 麻将来了有几个版本 四川快乐12开将结 真的有天津时时彩吗 体彩福建36选7第20009开奖结果 三明期货配资 营口52麻将官网下载 广东好彩1开奖今天 股票0基础知识入门 怎样计算双色球关系码 湖南体彩赛车 麻将游戏单机版下载 真正免费麻将游戏 秒速快三计划群网站