NSNumber

NSNumberのValueの考え方

Accessing Numeric Values
boolValue真偽値 true/false
stringValue文字列
integerValue整数値 NSInteger値
intValue整数値
longLongValue長整数値 64bit
longValue長整数値 32/64bit
shortValue短整数値 16bit
doubleValue倍精度浮動小数点数 64bit
floatValue単精度浮動小数点数 32bit
NSNumber

|

[AppleScript]負の数値を整数にする

【スクリプトエディタで開く】 |

001#!/usr/bin/env osascript
002use AppleScript version "2.8"
003use framework "Foundation"
004use framework "AppKit"
005use scripting additions
006
007property refMe : a reference to current application
008
009set numNegative to -320.5 as number
010set strNegative to (numNegative) as text
011set ocidNegativeString to (refMe's NSString's stringWithString:(strNegative))
012set ocidDecimalNegativeNumber to refMe's NSDecimalNumber's decimalNumberWithString:(ocidNegativeString)
013set ocidNegativeOne to refMe's NSDecimalNumber's decimalNumberWithString:("-1")
014set ocidAbsoluteValue to ocidDecimalNegativeNumber's decimalNumberByMultiplyingBy:(ocidNegativeOne)
015log ocidAbsoluteValue's doubleValue() as number
016log ocidAbsoluteValue's floatValue() as number
017log ocidAbsoluteValue's stringValue() as text
018
019
020#一番簡単な方法 マイナス1を掛ける
021set numNegative to -320.5 as number
022if numNegative < 0 then
023   set numDouble to ((numNegative as number) * -1) as number
024end if
025log numDouble
026
027
028#ベキ算使っても出来る
029set numNegative to -320.5 as number
030if numNegative < 0 then
031   set numDouble to (((numNegative as number) ^ 2) ^ 0.5) as number
032end if
033log numDouble
034
035#いっそテキストとしてマイナス付合を削除するのもある
036set numNegative to -320.5 as number
037if numNegative < 0 then
038   set strNegative to numNegative as text
039   set listNegativeNo to (every character of strNegative) as list
040   set numDouble to (text 2 thru (count of strNegative) of strNegative) as number
041end if
042log numDouble

AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002use AppleScript version "2.8"
003use framework "Foundation"
004use framework "AppKit"
005use scripting additions
006
007property refMe : a reference to current application
008
009set numNegative to -320.5 as number
010set strNegative to (numNegative) as text
011set ocidNegativeString to (refMe's NSString's stringWithString:(strNegative))
012set ocidDecimalNegativeNumber to refMe's NSDecimalNumber's decimalNumberWithString:(ocidNegativeString)
013set ocidNegativeOne to refMe's NSDecimalNumber's decimalNumberWithString:("-1")
014set ocidAbsoluteValue to ocidDecimalNegativeNumber's decimalNumberByMultiplyingBy:(ocidNegativeOne)
015log ocidAbsoluteValue's doubleValue() as number
016log ocidAbsoluteValue's floatValue() as number
017log ocidAbsoluteValue's stringValue() as text
018
019
020set numNegative to -320.5 as number
021if numNegative < 0 then
022  set numDouble to (((numNegative as number) ^ 2) ^ 0.5) as number
023end if
024log numDouble
025
026
027set numNegative to -320.5 as number
028if numNegative < 0 then
029  set strNegative to numNegative as text
030  set listNegativeNo to (every character of strNegative) as list
031  set numDouble to (text 2 thru (count of strNegative) of strNegative) as number
032end if
033log numDouble
AppleScriptで生成しました

|

[NSDecimalNumber]計算にNSDecimalNumberを使う


AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004#com.cocolog-nifty.quicktimer.icefloe
005----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
006use AppleScript version "2.8"
007use framework "Foundation"
008use framework "AppKit"
009use scripting additions
010
011property refMe : a reference to current application
012
013
014set the listRGB16bitColor to (choose color default color {50, 50, 50}) as list
015
016###戻り値は16bitの整数をテキストに
017set str16bitR to (item 1 of listRGB16bitColor) as text
018set str16bitG to (item 2 of listRGB16bitColor) as text
019set str16bitB to (item 3 of listRGB16bitColor) as text
020###NSDecimalNumberに変換
021set ocidDecR to refMe's NSDecimalNumber's alloc()'s initWithString:(str16bitR)
022set ocidDecG to refMe's NSDecimalNumber's alloc()'s initWithString:(str16bitG)
023set ocidDecB to refMe's NSDecimalNumber's alloc()'s initWithString:(str16bitB)
024###割り算
025set ocid16bit to refMe's NSDecimalNumber's alloc()'s initWithString:("65535")
026
027set ocidFloatR to (ocidDecR's decimalNumberByDividingBy:(ocid16bit))
028set ocidFloatG to (ocidDecG's decimalNumberByDividingBy:(ocid16bit))
029set ocidFloatB to (ocidDecB's decimalNumberByDividingBy:(ocid16bit))
030
031log ocidFloatR's stringValue() as text
032###小数点4位まで
033set ocidFormatter to refMe's NSNumberFormatter's alloc()'s init()
034ocidFormatter's setRoundingMode:(refMe's NSNumberFormatterRoundFloor)
035ocidFormatter's setNumberStyle:(refMe's NSNumberFormatterDecimalStyle)
036ocidFormatter's setUsesGroupingSeparator:(false)
037ocidFormatter's setMaximumFractionDigits:(10)
038set ocidFloat4R to ocidFormatter's stringFromNumber:(ocidFloatR)
039set ocidFloat4G to ocidFormatter's stringFromNumber:(ocidFloatG)
040set ocidFloat4B to ocidFormatter's stringFromNumber:(ocidFloatB)
041log ocidFloat4R as text
042
043###掛け算
044set ocid8bit to refMe's NSDecimalNumber's alloc()'s initWithString:("255")
045
046set ocid8BitR to (ocidFloatR's decimalNumberByMultiplyingBy:(ocid8bit))
047set ocid8BitG to (ocidFloatG's decimalNumberByMultiplyingBy:(ocid8bit))
048set ocid8BitB to (ocidFloatB's decimalNumberByMultiplyingBy:(ocid8bit))
049
050log ocid8BitR's stringValue() as text
051###小数点以下切り捨て
052(*  
053NSNumberFormatterRoundCeiling
054NSNumberFormatterRoundFloor
055NSNumberFormatterRoundDown
056NSNumberFormatterRoundUp
057NSNumberFormatterRoundHalfEven
058NSNumberFormatterRoundHalfDown
059NSNumberFormatterRoundHalfUp
060*)
061#切り捨て
062set ocidFormatter to refMe's NSNumberFormatter's alloc()'s init()
063ocidFormatter's setRoundingMode:(refMe's NSNumberFormatterRoundUp)
064ocidFormatter's setNumberStyle:(refMe's NSNumberFormatterDecimalStyle)
065ocidFormatter's setUsesGroupingSeparator:(false)
066ocidFormatter's setMaximumFractionDigits:(0)
067set str8BitStrR to (ocidFormatter's stringFromNumber:(ocid8BitR)) as text
068set str8BitStrG to (ocidFormatter's stringFromNumber:(ocid8BitG)) as text
069set str8BitStrB to (ocidFormatter's stringFromNumber:(ocid8BitB)) as text
070
071
072set strRhex to getHex(str8BitStrR) as text
073set strGhex to getHex(str8BitStrG) as text
074set strBhex to getHex(str8BitStrB) as text
075
076
077#を付けてHTML用のHEXカラーコードに
078set strHex to ("#" & strRhex & strGhex & strBhex) as text
079set strRGBA to ("-color-rgba(" & str8BitStrR & ", " & str8BitStrG & ", " & str8BitStrB & ", " & 0 & ")") as text
080
081set strDisptext to (strHex & "\n" & strRGBA) as text
082#RGBカラー値を整形
083set theRGB8bitColor to ("R:" & str8BitStrR & " G:" & str8BitStrG & " B:" & str8BitStrB & "\n" & strHex & "\n")
084
085##############################
086#####ダイアログを前面に
087tell current application
088  set strName to name as text
089end tell
090####スクリプトメニューから実行したら
091if strName is "osascript" then
092  tell application "Finder" to activate
093else
094  tell current application to activate
095end if
096
097###ダイアログ
098set aliasIconPath to POSIX file "/System/Applications/Utilities/Digital Color Meter.app/Contents/Resources/AppIcon.icns" as alias
099set strTitle to ("コードをコピーしてください") as text
100set strMes to ("" & theRGB8bitColor & "Colorが\n出来ました\nコピーして使って下さい。") as text
101set recordResult to (display dialog strMes default answer the strDisptext with icon aliasIconPath with title strTitle buttons {"クリップボードにコピー", "OK", "終了"} default button "OK" cancel button "終了" giving up after 20 without hidden answer) as record
102###クリップボードコピー
103if button returned of recordResult is "クリップボードにコピー" then
104  try
105    set strText to text returned of recordResult as text
106    ####ペーストボード宣言
107    set appPasteboard to refMe's NSPasteboard's generalPasteboard()
108    set ocidText to (refMe's NSString's stringWithString:(strText))
109    appPasteboard's clearContents()
110    appPasteboard's setString:(ocidText) forType:(refMe's NSPasteboardTypeString)
111  on error
112    tell application "Finder"
113      set the clipboard to strTitle as text
114    end tell
115  end try
116end if
117
118##############################
119#サブ
120##############################
121to getHex(arg8BitNum)
122  set record8Bit2Hex to {|0|:"00", |1|:"01", |2|:"02", |3|:"03", |4|:"04", |5|:"05", |6|:"06", |7|:"07", |8|:"08", |9|:"09", |10|:"0A", |11|:"0B", |12|:"0C", |13|:"0D", |14|:"0E", |15|:"0F", |16|:"10", |17|:"11", |18|:"12", |19|:"13", |20|:"14", |21|:"15", |22|:"16", |23|:"17", |24|:"18", |25|:"19", |26|:"1A", |27|:"1B", |28|:"1C", |29|:"1D", |30|:"1E", |31|:"1F", |32|:"20", |33|:"21", |34|:"22", |35|:"23", |36|:"24", |37|:"25", |38|:"26", |39|:"27", |40|:"28", |41|:"29", |42|:"2A", |43|:"2B", |44|:"2C", |45|:"2D", |46|:"2E", |47|:"2F", |48|:"30", |49|:"31", |50|:"32", |51|:"33", |52|:"34", |53|:"35", |54|:"36", |55|:"37", |56|:"38", |57|:"39", |58|:"3A", |59|:"3B", |60|:"3C", |61|:"3D", |62|:"3E", |63|:"3F", |64|:"40", |65|:"41", |66|:"42", |67|:"43", |68|:"44", |69|:"45", |70|:"46", |71|:"47", |72|:"48", |73|:"49", |74|:"4A", |75|:"4B", |76|:"4C", |77|:"4D", |78|:"4E", |79|:"4F", |80|:"50", |81|:"51", |82|:"52", |83|:"53", |84|:"54", |85|:"55", |86|:"56", |87|:"57", |88|:"58", |89|:"59", |90|:"5A", |91|:"5B", |92|:"5C", |93|:"5D", |94|:"5E", |95|:"5F", |96|:"60", |97|:"61", |98|:"62", |99|:"63", |100|:"64", |101|:"65", |102|:"66", |103|:"67", |104|:"68", |105|:"69", |106|:"6A", |107|:"6B", |108|:"6C", |109|:"6D", |110|:"6E", |111|:"6F", |112|:"70", |113|:"71", |114|:"72", |115|:"73", |116|:"74", |117|:"75", |118|:"76", |119|:"77", |120|:"78", |121|:"79", |122|:"7A", |123|:"7B", |124|:"7C", |125|:"7D", |126|:"7E", |127|:"7F", |128|:"80", |129|:"81", |130|:"82", |131|:"83", |132|:"84", |133|:"85", |134|:"86", |135|:"87", |136|:"88", |137|:"89", |138|:"8A", |139|:"8B", |140|:"8C", |141|:"8D", |142|:"8E", |143|:"8F", |144|:"90", |145|:"91", |146|:"92", |147|:"93", |148|:"94", |149|:"95", |150|:"96", |151|:"97", |152|:"98", |153|:"99", |154|:"9A", |155|:"9B", |156|:"9C", |157|:"9D", |158|:"9E", |159|:"9F", |160|:"A0", |161|:"A1", |162|:"A2", |163|:"A3", |164|:"A4", |165|:"A5", |166|:"A6", |167|:"A7", |168|:"A8", |169|:"A9", |170|:"AA", |171|:"AB", |172|:"AC", |173|:"AD", |174|:"AE", |175|:"AF", |176|:"B0", |177|:"B1", |178|:"B2", |179|:"B3", |180|:"B4", |181|:"B5", |182|:"B6", |183|:"B7", |184|:"B8", |185|:"B9", |186|:"BA", |187|:"BB", |188|:"BC", |189|:"BD", |190|:"BE", |191|:"BF", |192|:"C0", |193|:"C1", |194|:"C2", |195|:"C3", |196|:"C4", |197|:"C5", |198|:"C6", |199|:"C7", |200|:"C8", |201|:"C9", |202|:"CA", |203|:"CB", |204|:"CC", |205|:"CD", |206|:"CE", |207|:"CF", |208|:"D0", |209|:"D1", |210|:"D2", |211|:"D3", |212|:"D4", |213|:"D5", |214|:"D6", |215|:"D7", |216|:"D8", |217|:"D9", |218|:"DA", |219|:"DB", |220|:"DC", |221|:"DD", |222|:"DE", |223|:"DF", |224|:"E0", |225|:"E1", |226|:"E2", |227|:"E3", |228|:"E4", |229|:"E5", |230|:"E6", |231|:"E7", |232|:"E8", |233|:"E9", |234|:"EA", |235|:"EB", |236|:"EC", |237|:"ED", |238|:"EE", |239|:"EF", |240|:"F0", |241|:"F1", |242|:"F2", |243|:"F3", |244|:"F4", |245|:"F5", |246|:"F6", |247|:"F7", |248|:"F8", |249|:"F9", |250|:"FA", |251|:"FB", |252|:"FC", |253|:"FD", |254|:"FE", |255|:"FF"} as record
123  
124  set ocid8Bit2HexDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:0
125  ocid8Bit2HexDict's setDictionary:(record8Bit2Hex)
126  set str8BitNum to arg8BitNum as string
127  set ocidValue to (ocid8Bit2HexDict's valueForKey:(str8BitNum))
128  set strValue to ocidValue as text
129  return strValue
130end getHex
AppleScriptで生成しました

|

[小数点]小数点いかの桁揃え


#############################
###小数点2桁にテキスト整形する
#############################
set ocidFormatter to refMe's NSNumberFormatter's alloc()'s init()
ocidFormatter's setNumberStyle:(refMe's NSNumberFormatterDecimalStyle)
ocidFormatter's setMinimumFractionDigits:(2)
ocidFormatter's setMaximumFractionDigits:(2)
set strSizeWidthMm2Digi to (ocidFormatter's stringFromNumber:(numSizeWidthMm)) as text
set strSizeHeightMm2Digi to (ocidFormatter's stringFromNumber:(numSizeHeightMm)) as text
log strSizeWidthMm2Digi as text
log strSizeHeightMm2Digi as text


【スクリプトエディタで開く】|

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
use AppleScript version "2.8"
use framework "Foundation"
use framework "AppKit"
use scripting additions
property refMe : a reference to current application

####ドキュメントを開いているか?チェック
tell application "Preview"
  set numWindow to (count of window) as integer
  if numWindow = 0 then
    log "ドキュメントを開いていません"
    ##前面に出す
    set strAppName to (name of current application) as text
    if strAppName is "osascript" then
      tell application "Finder" to activate
    else
      tell current application to activate
    end if
    display alert "エラー:Windowがありません" buttons {"OK", "キャンセル"} default button "OK" as informational giving up after 2
return "ドキュメントを開いていません"
  end if
  set numDoc to (count of every document) as integer
  if numDoc = 0 then
    log "ドキュメントを開いていません"
    ##前面に出す
    set strAppName to (name of current application) as text
    if strAppName is "osascript" then
      tell application "Finder" to activate
    else
      tell current application to activate
    end if
    display alert "エラー:Documentを開いていません" buttons {"OK", "キャンセル"} default button "OK" as informational giving up after 2
return "ドキュメントを開いていません"
  end if
end tell

####
tell application "Preview"
  set boolFrontMost to frontmost as boolean
  if boolFrontMost = false then
    activate
  end if
  tell front document
    set strFilePath to path as text
    set strName to name as text
  end tell
end tell
####
set ocidFilePathStr to refMe's NSString's stringWithString:(strFilePath)
set ocidFilePath to ocidFilePathStr's stringByStandardizingPath()
set ocidFilePathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(ocidFilePath) isDirectory:false)
##種類判定(PDFを除外する)
set aliasFilePath to (ocidFilePathURL's absoluteURL()) as alias
tell application "Finder"
  tell file aliasFilePath
    set strKind to kind as text
  end tell
end tell
###
if (strKind contains "画像") is false then
  log "画像ファイルではありません"
  ##前面に出す
  set strAppName to (name of current application) as text
  if strAppName is "osascript" then
    tell application "Finder" to activate
  else
    tell current application to activate
  end if
  display alert "エラー:画像ファイルではありません" buttons {"OK", "キャンセル"} default button "OK" as informational giving up after 2
return "画像ファイルではありません"
end if

###########################
##NSIMAGEに読み込む
set ocidReadImage to (refMe's NSImage's alloc()'s initWithContentsOfURL:(ocidFilePathURL))
##サイズ取得 この時点はポイント単位
set recordImageSize to ocidReadImage's |size|()
log recordImageSize as record
set numSizeWidthPt to (width of recordImageSize) as integer
set numSizeHeightPt to (height of recordImageSize) as integer
###サイズ計算 ここでmmに変換
set numPoint2mm to 0.352778 as number
set numSizeWidthMm to (numSizeWidthPt * numPoint2mm) as number
set numSizeHeightMm to (numSizeHeightPt * numPoint2mm) as number
#############################
###小数点2桁にテキスト整形する
#############################
set ocidFormatter to refMe's NSNumberFormatter's alloc()'s init()
ocidFormatter's setNumberStyle:(refMe's NSNumberFormatterDecimalStyle)
ocidFormatter's setMinimumFractionDigits:(2)
ocidFormatter's setMaximumFractionDigits:(2)
set strSizeWidthMm2Digi to (ocidFormatter's stringFromNumber:(numSizeWidthMm)) as text
set strSizeHeightMm2Digi to (ocidFormatter's stringFromNumber:(numSizeHeightMm)) as text
log strSizeWidthMm2Digi as text
log strSizeHeightMm2Digi as text
##BitMapRepに変換
set ocidReadImageRepArray to ocidReadImage's representations()
set ocidReadImageRep to (ocidReadImageRepArray's objectAtIndex:0)
##ピクセルサイズ取得
set numPixelsWidth to ocidReadImageRep's pixelsWide()
set numPixelsHeight to ocidReadImageRep's pixelsHigh()
log numPixelsWidth
log numPixelsHeight
##解像度計算
set strResolution to ((numPixelsWidth / numSizeWidthPt) * 72) as text
log strResolution
###########################
##ダイアログ用テキスト
set strDefaultAnswer to ("ファイル名 : " & strName & "\nパス : " & strFilePath & "\n解像度 : " & strResolution & " ppi\n縦mm : " & numSizeHeightMm & "\n横mm : " & numSizeWidthMm & "\n横x縦mm : " & strSizeWidthMm2Digi & "x" & strSizeHeightMm2Digi & "\n横x縦pt : " & numSizeWidthPt & "x" & numSizeHeightPt & "\n横x縦px : " & numPixelsWidth & "x" & numPixelsHeight & "\n") as text

##############################
#####ダイアログ
##############################
##前面に出す
set strAppName to (name of current application) as text
if strAppName is "osascript" then
  tell application "Finder" to activate
else
  tell current application to activate
end if
###アイコンパス
set aliasIconPath to POSIX file "/System/Applications/Preview.app/Contents/Resources/AppIcon.icns" as alias
set strMes to ("ファイル名 : " & strName & "\nパス : " & strFilePath & "") as text
set recordResult to (display dialog strMes with title "選んでください" default answer strDefaultAnswer buttons {"クリップボードにコピー", "キャンセル", "OK"} default button "OK" cancel button "キャンセル" giving up after 20 with icon aliasIconPath without hidden answer)
###クリップボードコピー
if button returned of recordResult is "クリップボードにコピー" then
  set strText to (text returned of recordResult) as text
  try
    ####ペーストボード宣言
    set appPasteboard to refMe's NSPasteboard's generalPasteboard()
    set ocidText to (refMe's NSString's stringWithString:(strText))
appPasteboard's clearContents()
appPasteboard's setString:(ocidText) forType:(refMe's NSPasteboardTypeString)
  on error
    tell application "Finder"
      set the clipboard to strText as text
    end tell
  end try
end if



【スクリプトエディタで開く】|

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
use AppleScript version "2.5"
use framework "Foundation"
use scripting additions
property refMe : a reference to current application


set numNo to 1.335 as number
##指定無し-->だいたい四捨五入される
set ocidFormatter to refMe's NSNumberFormatter's alloc()'s init()
ocidFormatter's setNumberStyle:(refMe's NSNumberFormatterDecimalStyle)
ocidFormatter's setMinimumFractionDigits:(2)
ocidFormatter's setMaximumFractionDigits:(2)
set ocidDecStr to (ocidFormatter's stringFromNumber:(numNo))
log ocidDecStr as text
-->(*1.34*)


set numNo to 1.331 as number
#NSNumberFormatterRoundCeiling 切り上げ
set ocidFormatter to refMe's NSNumberFormatter's alloc()'s init()
ocidFormatter's setNumberStyle:(refMe's NSNumberFormatterDecimalStyle)
ocidFormatter's setRoundingMode:(refMe's NSNumberFormatterRoundCeiling)
ocidFormatter's setMinimumFractionDigits:(2)
ocidFormatter's setMaximumFractionDigits:(2)
set ocidDecStr to (ocidFormatter's stringFromNumber:(numNo))
log ocidDecStr as text
-->(*1.34*)

set numNo to 1.331 as number
#NSNumberFormatterRoundFloor 切り捨て
set ocidFormatter to refMe's NSNumberFormatter's alloc()'s init()
ocidFormatter's setNumberStyle:(refMe's NSNumberFormatterDecimalStyle)
ocidFormatter's setRoundingMode:(refMe's NSNumberFormatterRoundFloor)
ocidFormatter's setMinimumFractionDigits:(2)
ocidFormatter's setMaximumFractionDigits:(2)
set ocidDecStr to (ocidFormatter's stringFromNumber:(numNo))
log ocidDecStr as text
-->(*1.33*)


set numNo to 1.335 as number
#NSNumberFormatterRoundHalfDown  5捨6入
set ocidFormatter to refMe's NSNumberFormatter's alloc()'s init()
ocidFormatter's setNumberStyle:(refMe's NSNumberFormatterDecimalStyle)
ocidFormatter's setRoundingMode:(refMe's NSNumberFormatterRoundHalfDown)
ocidFormatter's setMinimumFractionDigits:(2)
ocidFormatter's setMaximumFractionDigits:(2)
set ocidDecStr to (ocidFormatter's stringFromNumber:(numNo))
log ocidDecStr as text
-->(*1.33*)


set numNo to 1.334 as number
#NSNumberFormatterRoundHalfUp  4捨5入
set ocidFormatter to refMe's NSNumberFormatter's alloc()'s init()
ocidFormatter's setNumberStyle:(refMe's NSNumberFormatterDecimalStyle)
ocidFormatter's setRoundingMode:(refMe's NSNumberFormatterRoundHalfUp)
ocidFormatter's setMinimumFractionDigits:(2)
ocidFormatter's setMaximumFractionDigits:(2)
set ocidDecStr to (ocidFormatter's stringFromNumber:(numNo))
log ocidDecStr as text
-->(*1.34*)




set numNo to 1.326 as number
#NSNumberFormatterRoundHalfEven
set ocidFormatter to refMe's NSNumberFormatter's alloc()'s init()
ocidFormatter's setNumberStyle:(refMe's NSNumberFormatterDecimalStyle)
ocidFormatter's setRoundingMode:(refMe's NSNumberFormatterRoundHalfEven)
ocidFormatter's setMinimumFractionDigits:(2)
ocidFormatter's setMaximumFractionDigits:(2)
set ocidDecStr to (ocidFormatter's stringFromNumber:(numNo))
log ocidDecStr as text
-->(*1.32*)





return






|

[integerValue]as integerを使わない場合

#!/usr/bin/env osascript
use AppleScript version "2.8"
use framework "Foundation"
use scripting additions

property refMe : a reference to current application
set ocidWidth to (refMe's NSNumber's numberWithInteger:1280)'s integerValue
set ocidHeight to (refMe's NSNumber's numberWithInteger:720)'s integerValue
set ocidXDimension to (refMe's NSNumber's numberWithInteger:0)'s integerValue
set ocidYDimension to (refMe's NSNumber's numberWithInteger:0)'s integerValue

|

[boolValue] as booleanを使わない場合


【スクリプトエディタで開く】|

#!/usr/bin/env osascript
use AppleScript version "2.8"
use framework "Foundation"
use scripting additions

property refMe : a reference to current application


set ocidFalse to (refMe's NSNumber's numberWithBool:false)
-->false

set ocidTrue to (refMe's NSNumber's numberWithBool:true)
-->true

set ocidFalse to (refMe's NSNumber's numberWithBool:false)'s boolValue
-->false

set ocidTrue to (refMe's NSNumber's numberWithBool:true)'s boolValue
-->true

set ocidTrue to (refMe's NSNumber's numberWithBool:false)'s integerValue
-->0

set ocidTrue to (refMe's NSNumber's numberWithBool:true)'s integerValue
-->1

|

[NSNumberFormatter] NSDecimalNumber 小数点以下の桁揃え

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
##自分環境がos12なので2.8にしているだけです
use AppleScript version "2.8"
use framework "Foundation"
use scripting additions



property objMe : a reference to current application
property objNSString : a reference to objMe's NSString

####小数点以下の数字をテキストにしておいて
set numNumber to 29.970029830933 as text

####NSDecimalNumber
set ocidDecimalNumber to objMe's NSDecimalNumber's decimalNumberWithString:numNumber
log ocidDecimalNumber as text
log className() of ocidDecimalNumber as text

###NSNumberFormatterの初期化
set ocidNSNumberFormatter to objMe's NSNumberFormatter's alloc()'s init()
log ocidNSNumberFormatter
log className() of ocidNSNumberFormatter as text
###小数点以下2桁のフォーマット
ocidNSNumberFormatter's setPositiveFormat:"#,##0.00"
####フォーマットを適応
set ocidDecimalNumber to ocidNSNumberFormatter's stringFromNumber:ocidDecimalNumber
log ocidDecimalNumber as text
log className() of ocidDecimalNumber as text

|

その他のカテゴリー

Accessibility Acrobat Acrobat 2020 Acrobat 2024 Acrobat AddOn Acrobat Annotation Acrobat AppleScript Acrobat ARMDC Acrobat AV2 Acrobat BookMark Acrobat Classic Acrobat DC Acrobat Dialog Acrobat Distiller Acrobat Form Acrobat GentechAI Acrobat JS Acrobat JS Word Search Acrobat Maintenance Acrobat Manifest Acrobat Menu Acrobat Merge Acrobat Open Acrobat PDFPage Acrobat Plugin Acrobat Preferences Acrobat Preflight Acrobat Print Acrobat Python Acrobat Reader Acrobat Reader Localized Acrobat Reference Acrobat Registered Products Acrobat SCA Acrobat SCA Updater Acrobat Sequ Acrobat Sign Acrobat Stamps Acrobat URL List Mac Acrobat URL List Windows Acrobat Watermark Acrobat Windows Acrobat Windows Reader Admin Admin Account Admin Apachectl Admin ConfigCode Admin configCode Admin Device Management Admin LaunchServices Admin Locationd Admin loginitem Admin Maintenance Admin Mobileconfig Admin NetWork Admin Permission Admin Pkg Admin Power Management Admin Printer Admin Printer Basic Admin Printer Custompapers Admin SetUp Admin SMB Admin softwareupdate Admin Support Admin System Information Admin TCC Admin Tools Admin Umask Admin Users Admin Volumes Admin XProtect Adobe Adobe AUSST Adobe Bridge Adobe Documents Adobe FDKO Adobe Fonts Adobe Reference Adobe RemoteUpdateManager Adobe Sap Code AppKit Apple AppleScript AppleScript Duplicate AppleScript entire contents AppleScript List AppleScript ObjC AppleScript Osax AppleScript PDF AppleScript Pictures AppleScript record AppleScript Video Applications AppStore Archive Archive Keka Attributes Automator BackUp Barcode Barcode Decode Barcode QR Bash Basic Basic Path Bluetooth BOX Browser Calendar CD/DVD Choose Chrome Chromedriver CIImage CityCode CloudStorage Color Color NSColor Color NSColorList com.apple.LaunchServices.OpenWith Console Contacts CotEditor CURL current application Date&Time delimiters Desktop Desktop Position Device Diff Disk do shell script Dock Dock Launchpad DropBox Droplet eMail Encode % Encode Decode Encode HTML Entity Encode UTF8 Error EXIFData exiftool ffmpeg File File Name Finder Finder Window Firefox Folder FolderAction Font List FontCollections Fonts Fonts Asset_Font Fonts ATS Fonts Emoji Fonts Maintenance Fonts Morisawa Fonts Python Fonts Variable Foxit GIF github Guide HTML Icon Icon Assets.car Illustrator Image Events ImageOptim Input Dictionary iPhone iWork Javascript Jedit Ω Json Label Language Link locationd lsappinfo m3u8 Mail Map Math Media Media AVAsset Media AVconvert Media AVFoundation Media AVURLAsset Media Movie Media Music Memo Messages Microsoft Microsoft Edge Microsoft Excel Microsoft Fonts Microsoft Office Microsoft Office Link Microsoft OneDrive Microsoft Teams Mouse Music Node Notes NSArray NSArray Sort NSAttributedString NSBezierPath NSBitmapImageRep NSBundle NSCFBoolean NSCharacterSet NSData NSDecimalNumber NSDictionary NSError NSEvent NSFileAttributes NSFileManager NSFileManager enumeratorAtURL NSFont NSFontManager NSGraphicsContext NSGraphicsContext Crop NSImage NSIndex NSKeyedArchiver NSKeyedUnarchiver NSLocale NSMetadataItem NSMutableArray NSMutableDictionary NSMutableString NSNotFound NSNumber NSOpenPanel NSPasteboard NSpoint NSPredicate NSRange NSRect NSRegularExpression NSRunningApplication NSScreen NSSet NSSize NSString NSString stringByApplyingTransform NSStringCompareOptions NSTask NSTimeZone NSUbiquitous NSURL NSURL File NSURLBookmark NSURLComponents NSURLResourceKey NSURLSession NSUserDefaults NSUUID NSView NSWorkspace Numbers OAuth PDF PDF Image2PDF PDF MakePDF PDF nUP PDF Pymupdf PDF Pypdf PDFContext PDFDisplayBox PDFImageRep PDFKit PDFKit Annotation PDFKit AnnotationWidget PDFKit DocumentPermissions PDFKit OCR PDFKit Outline PDFKit Start PDFPage PDFPage Rotation PDFView perl Photoshop PlistBuddy pluginkit plutil postalcode PostScript PowerShell prefPane Preview Python Python eyed3 Python pip QuickLook QuickTime ReadMe Regular Expression Reminders ReName Repeat RTF Safari SaveFile ScreenCapture ScreenSaver Script Editor Script Menu SF Symbols character id SF Symbols Entity Shortcuts Shortcuts Events sips Skype Slack Sound Spotlight sqlite StandardAdditions StationSearch Subtitles LRC Subtitles SRT Subtitles VTT Swift swiftDialog System Events System Settings TemporaryItems Terminal Text Text CSV Text MD Text TSV TextEdit Tools Translate Trash Twitter Typography UI Unit Conversion UTType valueForKeyPath Video VisionKit Visual Studio Code VMware Fusion Wacom Weather webarchive webp Wifi Windows XML XML EPUB XML HTML XML LSSharedFileList XML LSSharedFileList sfl2 XML LSSharedFileList sfl3 XML objectsForXQuery XML OPML XML Plist XML Plist System Events XML RSS XML savedSearch XML SVG XML TTML XML webloc XML xmllint XML XMP YouTube Zero Padding zoom