2016-12-31 5 views
6

इस संहिता-गोल्फ टिप प्रति एक पैरामीटर के रूप वैज्ञानिक संकेतन का उपयोग कर, PowerShell में आप वैज्ञानिक संकेतन का उपयोग आसानी से संख्या जो 10 की शक्तियों हैं उत्पन्न करने के लिए कर सकते हैं: https://codegolf.stackexchange.com/a/193/6776जारी करने के लिए Get-तिथि

अर्थात 1e7 संख्या 10,000,000 पैदा करता है।

अगर मैं (कोड गोल्फ के प्रयोजनों के लिए या अन्य नाम date,) get-date को यह मान पास मैं एक एकल दूसरा मिलती है: अर्थात date 10000000 =>01 January 0001 00:00:01

फिर भी अगर मैं वैज्ञानिक संकेतन का उपयोग, यहां तक ​​कि कोष्ठक के साथ (यानी date (1e7)) मैं कोई त्रुटि मिलती है:

Get-Date : Cannot bind parameter 'Date'. Cannot convert value "10000000" to type "System.DateTime". Error: "String was not recognized as a valid DateTime." 
At line:1 char:6 
+ date (1e7) 
+  ~~~~~ 
+ CategoryInfo   : InvalidArgument: (:) [Get-Date], ParameterBindingException 
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.GetDateCommand 

प्रश्न

वहाँ मिल- साथ वैज्ञानिक संकेतन का उपयोग करने का कोई तरीका है तिथि का डिफ़ॉल्ट (दिनांक) पैरामीटर?

+4

उपयोग करें: 'दिनांक (1e7l) '। – PetSerAl

+1

'ट्रेस-कमान {गेट-डेट (1000)} -नाम पैरामीटर बाइंड * -PSHost' और 'ट्रेस-कमान {गेट-डेट (1e3)} -नाम पैरामीटर बाइंड * -PSHost' –

+0

@PetSerAl वाह, एल मोड़ रहा है यह एक int64 में। क्यूं कर? –

उत्तर

6

इसका कारण यह है 1e7 एक डबल के रूप में outputed हो जाता है, तो आप सिर्फ एक पूर्णांक को यह कलाकारों के लिए है:

date ([int]1e7) 

आप देख सकते हैं कि आप उत्पादन पर GetType विधि कॉल करता है, तो:

(1e7).GetType() | Format-Table -AutoSize 

IsPublic IsSerial Name BaseType   
-------- -------- ---- --------   
True  True  Double System.ValueType 

संपादित करें: सबसे छोटा स्क्रिप्ट शायद है :

1e7l|date 

यह PetSerAls comment से लिया जाता है - बस कोष्ठक के बजाय पाइप का उपयोग करके एक और चरित्र को हटा दिया।

+0

आह के लिए धन्यवाद, धन्यवाद @ मार्टिन। – JohnLBevan

+0

मैंने अपने उत्तर को @PetSerAl से अच्छी टिप्पणी के साथ संपादित किया और ब्रैकेट के बजाय पाइप का उपयोग करके एक चरित्र को कम किया। –

+1

असल में, आपको यहां ब्रैकेट की आवश्यकता नहीं है: 'दिनांक 1e7l'। – PetSerAl

संबंधित मुद्दे